home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks ’92 / HyperInitMaker... / Heizer Working Models / WindowScript WM.sea / WindowScript™.Demo ƒ / WindowScript™ 1.0 Working Model / background_4516.xml next >
Extensible Markup Language  |  1992-04-29  |  21KB  |  232 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE background PUBLIC "-//Apple, Inc.//DTD background V 2.0//EN" "" >
  3. <background>
  4.     <id>4516</id>
  5.     <filler1>0</filler1>
  6.     <bitmap>BMAP_4847.pbm</bitmap>
  7.     <cantDelete> <true /> </cantDelete>
  8.     <showPict> <true /> </showPict>
  9.     <dontSearch> <false /> </dontSearch>
  10.     <link rel="stylesheet" type="text/css" href="stylesheet_3240.css" />
  11.     <part>
  12.         <id>103</id>
  13.         <type>field</type>
  14.         <visible> <true /> </visible>
  15.         <dontWrap> <false /> </dontWrap>
  16.         <dontSearch> <false /> </dontSearch>
  17.         <sharedText> <false /> </sharedText>
  18.         <fixedLineHeight> <false /> </fixedLineHeight>
  19.         <autoTab> <false /> </autoTab>
  20.         <lockText> <true /> </lockText>
  21.         <rect>
  22.             <left>55</left>
  23.             <top>14</top>
  24.             <right>330</right>
  25.             <bottom>39</bottom>
  26.         </rect>
  27.         <style>rectangle</style>
  28.         <autoSelect> <false /> </autoSelect>
  29.         <showLines> <false /> </showLines>
  30.         <wideMargins> <true /> </wideMargins>
  31.         <multipleLines> <false /> </multipleLines>
  32.         <reservedFamily> 0 </reservedFamily>
  33.         <titleWidth>0</titleWidth>
  34.         <icon>0</icon>
  35.         <textAlign>center</textAlign>
  36.         <font>Chicago</font>
  37.         <textSize>12</textSize>
  38.         <textStyle>plain</textStyle>
  39.         <textHeight>16</textHeight>
  40.         <name>Topic</name>
  41.         <script>on mouseUpshow bg btn "Hiliter"end mouseUp</script>
  42.     </part>
  43.     <part>
  44.         <id>104</id>
  45.         <type>button</type>
  46.         <visible> <true /> </visible>
  47.         <reserved5> 0 </reserved5>
  48.         <reserved4> 0 </reserved4>
  49.         <reserved3> 0 </reserved3>
  50.         <reserved2> 0 </reserved2>
  51.         <reserved1> 0 </reserved1>
  52.         <enabled> <true /> </enabled>
  53.         <rect>
  54.             <left>9</left>
  55.             <top>10</top>
  56.             <right>39</right>
  57.             <bottom>43</bottom>
  58.         </rect>
  59.         <style>rectangle</style>
  60.         <showName> <false /> </showName>
  61.         <highlight> <false /> </highlight>
  62.         <autoHighlight> <true /> </autoHighlight>
  63.         <sharedHighlight> <true /> </sharedHighlight>
  64.         <family>0</family>
  65.         <titleWidth>0</titleWidth>
  66.         <icon>8964</icon>
  67.         <textAlign>center</textAlign>
  68.         <font>Chicago</font>
  69.         <textSize>12</textSize>
  70.         <textStyle>plain</textStyle>
  71.         <name>Prev</name>
  72.         <script>on mouseUpvisual effect wipe right fastgo prev cd of this bgend mouseUp</script>
  73.     </part>
  74.     <part>
  75.         <id>105</id>
  76.         <type>button</type>
  77.         <visible> <true /> </visible>
  78.         <reserved5> 0 </reserved5>
  79.         <reserved4> 0 </reserved4>
  80.         <reserved3> 0 </reserved3>
  81.         <reserved2> 0 </reserved2>
  82.         <reserved1> 0 </reserved1>
  83.         <enabled> <true /> </enabled>
  84.         <rect>
  85.             <left>345</left>
  86.             <top>10</top>
  87.             <right>375</right>
  88.             <bottom>43</bottom>
  89.         </rect>
  90.         <style>rectangle</style>
  91.         <showName> <false /> </showName>
  92.         <highlight> <false /> </highlight>
  93.         <autoHighlight> <true /> </autoHighlight>
  94.         <sharedHighlight> <true /> </sharedHighlight>
  95.         <family>0</family>
  96.         <titleWidth>0</titleWidth>
  97.         <icon>8979</icon>
  98.         <textAlign>center</textAlign>
  99.         <font>Chicago</font>
  100.         <textSize>12</textSize>
  101.         <textStyle>plain</textStyle>
  102.         <name>Next</name>
  103.         <script>on mouseUpvisual effect wipe left fastgo next cdend mouseUp</script>
  104.     </part>
  105.     <part>
  106.         <id>106</id>
  107.         <type>button</type>
  108.         <visible> <true /> </visible>
  109.         <reserved5> 0 </reserved5>
  110.         <reserved4> 0 </reserved4>
  111.         <reserved3> 0 </reserved3>
  112.         <reserved2> 0 </reserved2>
  113.         <reserved1> 0 </reserved1>
  114.         <enabled> <true /> </enabled>
  115.         <rect>
  116.             <left>56</left>
  117.             <top>15</top>
  118.             <right>329</right>
  119.             <bottom>38</bottom>
  120.         </rect>
  121.         <style>transparent</style>
  122.         <showName> <false /> </showName>
  123.         <highlight> <true /> </highlight>
  124.         <autoHighlight> <false /> </autoHighlight>
  125.         <sharedHighlight> <true /> </sharedHighlight>
  126.         <family>0</family>
  127.         <titleWidth>0</titleWidth>
  128.         <icon>0</icon>
  129.         <textAlign>center</textAlign>
  130.         <font>Chicago</font>
  131.         <textSize>12</textSize>
  132.         <textStyle>plain</textStyle>
  133.         <name>Hiliter</name>
  134.         <script>on mouseDownget rect of merepeatset hilite of me to not ptinrect(mouseLoc(), it)if the mouse is up then exit repeatend repeatif hilite of me = false thenset hilite of me to truevisual effect iris closego cd "Index"end ifend mouseDownfunction ptinrect p,rreturn ((item 1 of p)>=(item 1 of r)) ¬¨and ((item 1 of p)<=(item 3 of r)) ¬¨and ((item 2 of p)>=(item 2 of r)) ¬¨and ((item 2 of p)<=(item 4 of r))end ptinrect</script>
  135.     </part>
  136.     <part>
  137.         <id>108</id>
  138.         <type>button</type>
  139.         <visible> <true /> </visible>
  140.         <reserved5> 0 </reserved5>
  141.         <reserved4> 0 </reserved4>
  142.         <reserved3> 0 </reserved3>
  143.         <reserved2> 0 </reserved2>
  144.         <reserved1> 0 </reserved1>
  145.         <enabled> <true /> </enabled>
  146.         <rect>
  147.             <left>9</left>
  148.             <top>233</top>
  149.             <right>114</right>
  150.             <bottom>255</bottom>
  151.         </rect>
  152.         <style>rectangle</style>
  153.         <showName> <true /> </showName>
  154.         <highlight> <false /> </highlight>
  155.         <autoHighlight> <true /> </autoHighlight>
  156.         <sharedHighlight> <true /> </sharedHighlight>
  157.         <family>0</family>
  158.         <titleWidth>0</titleWidth>
  159.         <icon>0</icon>
  160.         <textAlign>center</textAlign>
  161.         <font>Geneva</font>
  162.         <textSize>12</textSize>
  163.         <textStyle>plain</textStyle>
  164.         <name>Examples‚Ķ</name>
  165.         <script>on mouseUpstart using this stackInstallWSdoWindowend mouseUp</script>
  166.     </part>
  167.     <part>
  168.         <id>110</id>
  169.         <type>button</type>
  170.         <visible> <true /> </visible>
  171.         <reserved5> 0 </reserved5>
  172.         <reserved4> 0 </reserved4>
  173.         <reserved3> 0 </reserved3>
  174.         <reserved2> 0 </reserved2>
  175.         <reserved1> 0 </reserved1>
  176.         <enabled> <true /> </enabled>
  177.         <rect>
  178.             <left>125</left>
  179.             <top>233</top>
  180.             <right>260</right>
  181.             <bottom>255</bottom>
  182.         </rect>
  183.         <style>rectangle</style>
  184.         <showName> <true /> </showName>
  185.         <highlight> <false /> </highlight>
  186.         <autoHighlight> <true /> </autoHighlight>
  187.         <sharedHighlight> <true /> </sharedHighlight>
  188.         <family>0</family>
  189.         <titleWidth>0</titleWidth>
  190.         <icon>0</icon>
  191.         <textAlign>center</textAlign>
  192.         <font>Chicago</font>
  193.         <textSize>12</textSize>
  194.         <textStyle>plain</textStyle>
  195.         <name>Installation‚Ķ</name>
  196.         <script>on mouseUpglobal PPput empty into initif PP is not emptythen put return & "i12_Name: Remove For Now" ¬¨& return & "DeinstallPrompt_Visible: TRUE" ¬¨& return & "IinstallPrompt_Visible: FALSE" after initif "--‚Ä¢ WindowScript ‚Ä¢--" is in script of stack "Home"then put return&"i3_Name: Remove"¬¨& return & "AddPrompt_Visible: FALSE" ¬¨& return & "RemovePrompt_Visible: TRUE" after initget WindowScript("WindowScript Installation" & init)if line 1 of it = "Install For Now" thenstart using this stackInstallWS trueelse if line 1 of it = "Remove For Now" thenDeinstallWSstop using this stackend ifend mouseUp</script>
  197.     </part>
  198.     <part>
  199.         <id>113</id>
  200.         <type>button</type>
  201.         <visible> <true /> </visible>
  202.         <reserved5> 0 </reserved5>
  203.         <reserved4> 0 </reserved4>
  204.         <reserved3> 0 </reserved3>
  205.         <reserved2> 0 </reserved2>
  206.         <reserved1> 0 </reserved1>
  207.         <enabled> <true /> </enabled>
  208.         <rect>
  209.             <left>268</left>
  210.             <top>230</top>
  211.             <right>379</right>
  212.             <bottom>258</bottom>
  213.         </rect>
  214.         <style>transparent</style>
  215.         <showName> <true /> </showName>
  216.         <highlight> <false /> </highlight>
  217.         <autoHighlight> <true /> </autoHighlight>
  218.         <sharedHighlight> <true /> </sharedHighlight>
  219.         <family>0</family>
  220.         <titleWidth>0</titleWidth>
  221.         <icon>0</icon>
  222.         <textAlign>center</textAlign>
  223.         <font>Geneva</font>
  224.         <textSize>12</textSize>
  225.         <textStyle>plain</textStyle>
  226.         <name>Index</name>
  227.         <script>on mouseUpvisual effect iris closego cd "Index"end mouseUp</script>
  228.     </part>
  229.     <name></name>
  230.     <script>on openCardif there is a cd fld "Wisdom" thenif style of cd fld "Wisdom" = "Scrolling"then set scroll of cd fld "Wisdom" to 0end ifpass openCardend openCardon wsOninstallwsend wsonon wsOFFdeinstallwsend wsOFFon closeCard-- set scroll of cd fld "Wisdom" to 0pass closeCardend closeCardon lockWisdomgo first cdrepeat with x = 1 to number of cdsif there is a cd fld "wisdom" then set locktext of cd fld "Wisdom" to truego next cdend repeatend lockWisdomon unlockWisdomgo first cdrepeat with x = 1 to number of cdsif there is a cd fld "wisdom" then set locktext of cd fld "Wisdom" to falsego next cdend repeatend unlockWisdomfunction startupScript partif part=1 thenreturn  "  if the optionKey is not down then wsOn --‚Ä¢ WindowScript ‚Ä¢--"&returnelseput quote&(short name of this stack)&quote into skNmreturn return & "on wsOn" ¬¨& return & "  start using stack "&skNm¬¨& return & "  if the result is empty then InstallWS"¬¨& return & "end wsOn" ¬¨& return ¬¨& return & "on wsOff" ¬¨& return & "  if value of word 2 of long name of stack "&skNm&" is in the stacksinuse then"¬¨& return & "    deinstallWS"¬¨& return & "    stop using stack "&skNm¬¨& return & "  end if" ¬¨& return & "end wsOff" ¬¨& returnend ifend startupScripton addHomeScriptset cursor to watchput script of stack "Home" into homeScriptput offset(return&"  pass startup",homeScript) into cif c = 0 thenget WindowScript("Stop", "Startup script not found. (Didn't find ‚Äúpass startUp‚Äù).")return "NG"end ifput startupScript(1) before char c+2 of homescriptif offset((return&"on wsOn"),homeScript)=0 thenput offset(return&"end startup",homescript) into cif c = 0 thenget WindowScript("Stop", "End of startup script not found.")return "NG"end ifput startupScript(2) before char c+13 of homescriptend ifset script of stack "Home" to homescriptend addHomeScripton removeHomeScriptset cursor to watchput script of stack "Home" into homeScriptget startupScript(1)put offset(it,homeScript) into cif c = 0 thenget WindowScript("Stop", "No startup script found. (Didn't find ‚Äú"&it&"‚Äù).")return "NG"elsedelete char c to c+(number of chars in it)-1 of homeScriptset script of stack "Home" to homeScriptend ifend removeHomeScripton InstallHit windowID,wdName,i,iName,iValueif i=0 and iValue="Open" thenif word 3 of wsGet() = "WM" thenwsSet windowID,6,"DISABLED",truewsSet windowID,"copy‚Ķ","DISABLED",trueend ifelse if iName = "Add" thenaddHomeScriptif the result is empty thenget "i3_name: Remove" ¬¨& return & "AddPrompt_Visible: FALSE" ¬¨& return & "RemovePrompt_Visible: TRUE"wsSet windowID,0,PROPERTIES,itend ifelse if iName = "Remove" thenremoveHomeScriptif the result is empty thenget "i3_name: Add" ¬¨& return & "AddPrompt_Visible: TRUE" ¬¨& return & "RemovePrompt_Visible: FALSE"wsSet windowID,0,PROPERTIES,itend ifelse if i = 6 thenwsSet windowID,0,"VISIBLE",FALSEanswer file "Select target stack below:" of type "STAK"wsSet windowID,0,"xTarget",itwsSet windowID,7,"TEXT", LastHCItem(":",it)wsSet windowID,0,"VISIBLE",TRUEelse if iName = "copy‚Ķ" thenput wsGet(windowID,0,"xTarget") into toStackwsSet windowID,0,"VISIBLE",FALSEif toStack is empty thenanswer file "Select target stack below:" of type "STAK"wsSet windowID,0,"xTarget",itwsSet windowID,7,"TEXT", LastHCItem(":",it)put it into toStackif toStack is empty then exit InstallHitend ifget WindowScript("Copy Resources")if it is not empty thenput line 2 to 32767 of it into rListput value of word 2 of long name of this stack into fromStackput empty into errorLogrepeat with x =1 to number of lines in rListput line x of rList into theLineput theLineput word 1 of theLine into theTypeput word 2 to 99 of theLine into theNameif theType="(-" then next repeatif theLine = "XFCN WindowScript" thenrescopyquick fromStack,toStack,"XFCN","‚óäWindowScript‚óä"rescopyquick fromStack,toStack,"Karl","2"rescopyquick fromStack,toStack,"Karl","3"rescopyquick fromStack,toStack,"LENS","Distribution Splash"rescopyquick fromStack,toStack,"PICT","Splash"else rescopyquick fromStack,toStack,theType,theNameif the result is not empty thenget WindowScript("Stop","Trouble copying "&theLine&return&the result)put return & theLine after errorLogend ifend repeatif errorLog is empty then answer "Selected resources successfully installed."else answer "Some resources not installed:" &return& errorLogput emptyhide msgend ifwsSet windowID,"VISIBLE",TRUEend ifend InstallHiton answerPropHits wdID,wdName,objNo,objName,objValueif objName="ItemList" thenif objValue is not empty thenput wsGet(wdID,4,"SELECTION") into xput wsGet(wdID,0,"xWindowID") into ownerWindowget wsGet(ownerWindow,x-1,"PROPERTIES")--sort itwsSet wdID,6,"TEXT", itwsSet wdID,6,"SELECTION", 1wsSet wdID,1,"DISABLED", FALSEend ifelse if objName = "PropList" thenwsSet wdID,1,"DISABLED", objValue is emptyend ifend answerPropHits-- Below is extras from stack routed here with go stacks (YuK)on mapHits mapID,mapName,i,iName,iValueglobal gWindow, eachIsif iName = "Add‚Ķ" thenput wsGet(mapID,"theList","TEXT") into theTextput number of lines in theText into lastOneif lastOne>15 and eachIs = "param" thenget WindowScript("Stop", "HyperCard only permits 16 parameters. You may not add any more.")exit mapHitsend ifput itemlist of window gWindow into iListget WindowScript("AnswerProperty",gWindow,iList)if it is not empty thenput line 2 of it - 1 into theItemput line 3 of it into thePropertyget eachIs&&(number of lines in theText)+1&":‚óä"&theProperty&"‚óäof‚óä"&(line theItem+1 of iList)&"‚óä"&theItemwsSet mapID,"theList","TEXT",theText & return & itend ifelse if iName = "Change‚Ķ" thenput wsGet(mapID,"theList","SELECTION") into theOneif theOne = 1 thenif eachIs = "Param" then get "parameter" else get "line"get WindowScript("Stop", "The first "&it&" may not be changed.")exit mapHitsend ifget wsGet(mapID,"theList","SELECTIONTEXT")if it is not empty thenput GetItem(it,2,"‚óä") into thePropertyput  GetItem(it,5,"‚óä")  into theItemput itemlist of window gWindow into iListput wsGet(gWindow,theItem,Properties) into pListsort lines of pListget WindowScript("AnswerProperty",gWindow,iList,pList,theItem+1,theProperty)if it is not empty thenput line 2 of it - 1 into theItemput line 3 of it into thePropertyget eachIs&&theOne&":‚óä"&theProperty&"‚óäof‚óä"&(line theItem+1 of iList)&"‚óä"&theItemwsSet mapID,"theList","TEXTOFSELECTION", itend ifend ifelse if iName = "Delete" thenput wsGet(mapID,"theList","SELECTION") into theOneif theOne = 1 thenif eachIs = "Param" then get "parameter" else get "line"get WindowScript("Stop", "The first "&it&" may not be deleted.")exit mapHitsend ifput wsGet(mapID,"theList","TEXT") into theTextdelete line theOne of theTextrepeat with i = theOne to number of lines in theTextget line i of theTextget char offset("‚óä",it) to 999 of itput eachIs&&i&":"&it into line i of theTextend repeatwsSet mapID,"theList","TEXT",theTextwsSet mapID,"theList","SELECTION", theOneelse if iName = "theList" thenwsSet mapID,"Delete","DISABLED",(iValue is empty)wsSet mapID,"Change‚Ķ","DISABLED",(iValue is empty)end ifend mapHitson GetHit wID,wName,iNum,iName,iValueglobal gWindowif iNum = 0 and iValue = "Open" thenput "get wsGet(wdID, " & quote & "Item Name" & quote ¬¨& ", " & quote & "Property Name" & quote & ")" into theHTwsSet wName, "Statement", "TEXT", theHTelse if iName = "ItemList" thenif iValue is not empty thenput wsGet(wName,iNum,"SELECTION") into iput wsGet(gWindow,i-1,"Properties") into psort lines of pwsSet wName,"PropList","TEXT",pput wsGet(wName,"Statement","TEXT") into theHTif ((number of words in iValue) = 2) and (not wsGet(wName,9,"HILITE"))then get word 2 of iValue else get i-1put  quote & it & quote ¬¨& ", " & quote & "Property Name" & quote & ")" into item 2 to 999 of theHTwsSet wName, "Statement", "TEXT", theHTend ifelse if iName = "PropList" thenif iValue is not empty thenput wsGet(wName,"Statement","TEXT") into theHTput quote & iValue & quote & ")" into item 3 to 999 of theHTwsSet wName, "Statement", "TEXT", theHTend ifend ifend GetHiton SetHit wID,wName,iNum,iName,iValueglobal gWindowif iNum = 0 and iValue = "Open" thenput "wsSet wdID, " & quote & "Item Name" & quote ¬¨& ", " & quote & "Property Name" & quote ¬¨& ", " & quote & "Value" & quote into theHTwsSet wName, "Statement", "TEXT", theHTelse if iName = "ItemList" thenif iValue is not empty thenput wsGet(wName,iNum,"SELECTION") into iput wsGet(gWindow,i-1,"Properties") into psort lines of pwsSet wName,"PropList","TEXT",pput wsGet(wName,"Statement","TEXT") into theHTif ((number of words in iValue) = 2) and (not wsGet(wName,9,"HILITE"))then get word 2 of iValue else get i-1put quote & it & quote ¬¨& ", " & quote & "Property Name" & quote ¬¨& ", " & quote & quote into item 2 to 999 of theHTwsSet wName, "Statement", "TEXT", theHTend ifelse if iName = "PropList" thenif iValue is not empty thenput wsGet(wName,"ItemList","SELECTION") into iput wsGet(gWindow,i-1,iValue) into theVif return is in theV or quote is in theV then put empty into theVput wsGet(wName,"Statement","TEXT") into theHTput (quote & iValue & quote & ", " & quote & theV & quote) into item 3 to 999 of theHTwsSet wName, "Statement", "TEXT", theHTend ifend ifend SetHiton SendHit wID,wName,iNum,iName,iValueglobal gWindowif iNum = 0 and iValue = "Open" thenput "wsSend wdID, " & quote & "Item Name" & quote ¬¨& ", " & quote & "Command" & quote into theHTwsSet wName, "Statement", "TEXT", theHTelse if iName = "ItemList" thenif iValue is not empty thenput wsGet(wName,iNum,"SELECTION") into iput wsGet(gWindow,i-1,"COMMANDS") into psort lines of pwsSet wName,"PropList","TEXT",pput wsGet(wName,"Statement","TEXT") into theHTif ((number of words in iValue) = 2) and (not wsGet(wName,9,"HILITE"))then get word 2 of iValue else get i-1put  quote & it & quote ¬¨& ", " & quote & "Command" & quote into item 2 to 999 of theHTwsSet wName, "Statement", "TEXT", theHTend ifelse if iName = "PropList" thenif iValue is not empty thenput wsGet(wName,"Statement","TEXT") into theHTput quote & iValue & quote into item 3 to 999 of theHTwsSet wName, "Statement", "TEXT", theHTend ifend ifend SendHiton doInResglobal toStack,CRanswer file ""put it into fromFileif fromFile is empty then exit doInResput empty into rListrepeat with i = 1 to 5get item i of "DLOG,LENS,PICT,ICON,ICN#"get ResourceList(fromFile,it,"ALL")if it is not empty then put it & return after rListend repeatput empty into errLogget WindowScript("Import Resource",rList)if it is not empty thenput line 1 of it into theBtnput line 2 of it into iListrepeat with i = 1 to number of items in iListget line (item i of iList) of rListput offset("‚óä",it) into delput char 1 to del-1 of it into theTypedelete char 1 to del of itput offset("‚óä",it) into delput char 1 to del-1 of it into theIDdelete char 1 to del of itput char 1 to offset("‚óä",it)-1 of it into theNameput theType&&"#"&theID&" ‚Äú"&theName&"‚Äù " into errLineif theBtn = "Delete" thenresDelete fromFile,theType,theIDif the result is not emptythen put "Not Deleted ‚Äî "&the result after errLineelse put "Deleted." after errLineelse  if thetype = "DLOG" thenput DLOG2LENS(fromFile,theID) into theDataget Text2LENS(toStack,extractLensName(theData),theData)if the result is not emptythen put "Not Converted to LENS ‚Äî "&the result after errLineelse put "Converted to LENS." after errLineelserescopyquick fromFile,toStack,theType,theIDif the result is empty thenput "Copied." after errLineif theType = "ICON" thenrescopyquick fromFile,toStack,"cicn",theIDelse if theType = "ICN#" thenrescopyquick fromFile,toStack,"ics#",theIDrescopyquick fromFile,toStack,"ics4",theIDrescopyquick fromFile,toStack,"ics8",theIDrescopyquick fromFile,toStack,"icl#",theIDrescopyquick fromFile,toStack,"icl4",theIDrescopyquick fromFile,toStack,"icl8",theIDend ifelse if the result is an integer then put "Copied as #"&the result&"." after errLineelse put "Not Copied ‚Äî "&the result after errLineend ifput errLineput ErrLine & return after errLogend repeatput emptyget windowscript("Log",errLog)end ifend doInResfunction extractLensName theDataput offset(return&"Name: ",theData) into theOffif theOff is 0 then return emptyrepeat with x = theOff+7 to 1024if char x of theData is returnthen return char theOff+7 to x-1 of theDataend repeatend extractLensName</script>
  231. </background>
  232.